package drone.basis.annotaion ;

import java.lang.annotation.Documented ;
import java.lang.annotation.ElementType ;
import java.lang.annotation.Retention ;
import java.lang.annotation.RetentionPolicy ;
import java.lang.annotation.Target ;
import java.util.concurrent.TimeUnit ;

@Retention ( RetentionPolicy.RUNTIME )
@Target (
{
		ElementType.METHOD
} )
@Documented
public @interface Limit
{

	/**
	 * 资源的key,唯一 作用：不同的接口，不同的流量控制
	 */
	String key ( ) default "";

	/**
	 * 最多的访问限制次数
	 */
	double per ( ) default 1.0D;

	/**
	 * 获取令牌最大等待时间
	 */
	long timeout ( ) default 0L;

	/**
	 * 获取令牌最大等待时间,单位(例:分钟/秒/毫秒) 默认:毫秒
	 */
	TimeUnit unit ( ) default TimeUnit.MILLISECONDS;

	/**
	 * 得不到令牌的提示语
	 */
	String msg ( ) default "系统繁忙,请稍后再试.";
}
